package com.seedwill.common.persistence;

import java.util.List;
import java.util.Map;

import com.seedwill.xul.core.XSchemaFilter;


public interface IFilterParser {

	public static final String EMPTY = "empty";
	public static final String NULL = "null";
	
	void parse(Object ctx, Filter filter) throws PushCriteriaException ;
	void parse(Object ctx, Filter... filter) throws PushCriteriaException ;
	void parse(Object ctx, List<Filter> filter) throws PushCriteriaException ;
	void parse(Object ctx, FilterContainer filterContainer) throws PushCriteriaException;
	
	void parseX(Object ctx, XSchemaFilter filter) throws PushCriteriaException ;
	void parseX(Object ctx, XSchemaFilter... filter) throws PushCriteriaException ;
	void parseX(Object ctx, List<XSchemaFilter> filter) throws PushCriteriaException ;
	void parseX(Object ctx, XSchemaFilterContainer filterContainer) throws PushCriteriaException;
	
	void parse(String entityAlias, StringBuilder hqlBuffer, Map<String, Object> paras, Filter[] filter);
	void parseX(String entityAlias, StringBuilder hqlBuffer, Map<String, Object> paras, XSchemaFilter[] filter);
}
